import os
import json
from .consts import common
from .consts import gan_consts
from .consts import zhi_consts
from .consts import zhangsheng_consts
from .consts import shensha_consts
from .yinyang import YinYang
from .wuxing import WuXing
from .tiangan import Gan, GanChong, GanHe
from .dizhi import Zhi, ZhiXing, ZhiChong, ZhiPo, ZhiHai, ZhiAnHe, ZhiHe, Zhi3He, Zhi3Hui
from .shishen import ShiShen
from .zhangsheng import ZhangSheng
from .shensha import ShenSha


def load_meta_data():
    print('loading META DATA')
    YinYang.init_yinyang(common.YINYANG)
    WuXing.init_wuxing(common.WUXING)
    Gan.init_gans(common.GANS)
    GanChong.init_gans_chong(gan_consts.GANS_CHONG)
    GanHe.init_gans_he(gan_consts.GANS_HE)
    Zhi.init_zhis(common.ZHIS)
    ZhiXing.init_zhis_xing(zhi_consts.ZHIS_XING)
    ZhiChong.init_zhis_chong(zhi_consts.ZHIS_CHONG)
    ZhiPo.init_zhis_po(zhi_consts.ZHIS_PO)
    ZhiHai.init_zhis_hai(zhi_consts.ZHIS_HAI)
    ZhiAnHe.init_zhis_an_he(zhi_consts.ZHIS_AN_HE)
    ZhiHe.init_zhis_he(zhi_consts.ZHIS_HE)
    Zhi3He.init_zhis_3he(zhi_consts.ZHIS_3HE)
    Zhi3Hui.init_zhis_3hui(zhi_consts.ZHIS_3HUI)
    ShiShen.init_shishen(common.SHISHEN)
    ZhangSheng.init_zhangsheng(zhangsheng_consts.ZHANG_SHENG)
    ShenSha.init_shensha(shensha_consts.SHENSHA)


load_meta_data()


__all__ = [
    'YinYang', 'WuXing',
    'Gan', 'GanChong', 'GanHe',
    'Zhi', 'ZhiXing', 'ZhiChong', 'ZhiPo', 'ZhiHai', 'ZhiHe', 'Zhi3He', 'Zhi3Hui',
    'ShiShen', 'ShenSha',
]
